#include<iostream>
#include<cstdio>
using namespace std;
struct qwq{
	int l,r,v,len;
}p[210000];
int n,m=0;
int main(){
	freopen("fruit.in","r",stdin);
	freopen("fruit.out","w",stdout);
	scanf("%d",&n);
	p[0].v=-1;
	int a;
	for(int i=1;i<=n;i++){
		scanf("%d",&a);
		if(a!=p[m].v){
			p[m].r=i-1;
			p[++m].v=a;
			p[m].l=i;
			//test
			//printf("l:%d r:%d v:%d\n",p[m-1].l,p[m-1].r,p[m-1].v);
			//printf("%d %d %d\n",p[m].v,p[m-1].v,a);
			//
		}
	}
	p[m].r=n;
	for(int i=1;i<=m;i++){
		p[i].len=p[i].r-p[i].l+1;
	}
	//test
	//printf("%d\n",r);
	//
	bool qwq=true;
	int t=-1;
	while(qwq==true){
		qwq=false;
		t=-1;
		for(int j=1;j<=m;j++){
			if(p[j].len>0&&p[j].v!=t){
				printf("%d ",p[j].l);
				p[j].l++;
				p[j].len--;
				t=p[j].v;
			}
			if(p[j].len>0) qwq=true;
		}
		printf("\n");
	}
	return 0;
}
